package com.itheima.d0_feedback;
/*
为什么拷贝出师表的时候用字节输出输入流，而不是用字符输出输入流
    字节流是万流之根本，字符流的底层就是使用字节流去实现的。
    拷贝出师表的时候，上层用的就是字符流。
    BufferedReader   读行 readLine
    BufferedWriter   换行 newLine

    BufferedReader 和 BufferedWriter属于字符流

太多流了，有点分不清了（自己去梳理）

字节输入流
    InputStream
        FileInputStream
        BufferedInputStream
        DataInputStream         readXxx
        ObjectInputStream
字节输出流
    OutputStream
        FileOutputStream
        BufferedOutputStream
        DataOutputStream        writeXxx
        ObjectOutputStream
        PrintStream         print/println
字符输入流
    Reader
        FileReader
        BufferedReader  readLine
        InputStreamReader
字符输出流
    Writer
        FileWriter
        BufferedWriter  newLine
        OutputStreamWriter
        PrintWriter     print/println



1.byte[] buffer = new byte[64kb];  我在想如果定义长度为64kb, 那么缓存流一次读8kb,还是正常写入吗?
    是的，这时读到的64K会分8次写出去
 byte[] buffer = new byte[1kb]; 定义1kb, 那么缓存流一次读取8kb, 那7kb放在哪里?
   如果一次读取1kb，要读8次才能把缓冲区读满，此时才会写出去。读8次，写1次

 2. \\.要代表点, 为啥加两个斜杠, 一个斜杠本来不就是转义字符吗?

 */
public class Demo1 {
    public static void main(String[] args) {
        System.out.println(".");
        System.out.println("\\");

        String[] arr = "123.123.123".split("\\.");
        //正则表达式中，. 代表任意字符，对正则表达式来讲，这是一个特殊的字符。
        //如果在正则中你要把点当成是普通的字符点，此时应该在正则的层面进行转义。   \.

        //回到Java中，\ 在Java中是一种特殊的字符，是转义字符。如果想要得到普通的斜杠字符就要进一步转义。前面加上\就可以了。
    }
}
